package com.xbongbong.saas.service;


import com.xbongbong.paas.domain.entity.ext.ConditionsEntityExt;
import com.xbongbong.paas.pojo.dto.ApprovalRecordsDTO;
import com.xbongbong.paas.pojo.dto.DetailTabConditionListDTO;
import com.xbongbong.paas.pojo.dto.DetailTabScriptDTO;
import com.xbongbong.paas.pojo.dto.FormDataAddDTO;
import com.xbongbong.paas.pojo.dto.FormDataGetDTO;
import com.xbongbong.paas.pojo.vo.ApprovalRecordsVO;
import com.xbongbong.paas.pojo.vo.DetailTabScriptVO;
import com.xbongbong.paas.pojo.vo.FormDataAddGetVO;
import com.xbongbong.paas.pojo.vo.FormDataAddVO;
import com.xbongbong.paas.pojo.vo.FormDataUpdateGetVO;
import com.xbongbong.paas.pojo.vo.FormDataUpdateVO;
import com.xbongbong.paas.pojo.vo.PaasFormDataEsListVO;
import com.xbongbong.paas.pojo.vo.ScreenListVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.applist.pojo.vo.ListAppVO;
import com.xbongbong.pro.applist.pojo.vo.ListPurchasedVO;
import com.xbongbong.pro.businesstage.pojo.dto.ChangeStageDTO;
import com.xbongbong.pro.businesstage.pojo.vo.StageLogListVO;
import com.xbongbong.pro.cabinetfile.pojo.dto.CabinetFileListGetDTO;
import com.xbongbong.pro.customer.pojo.dto.ChangeStatusDTO;
import com.xbongbong.pro.customercommunicate.pojo.dto.CustomerDynamicListDTO;
import com.xbongbong.pro.customercommunicate.pojo.dto.DynamicListDTO;
import com.xbongbong.pro.customercommunicate.pojo.vo.CommunicateDynamicsListVO;
import com.xbongbong.pro.detailtab.dto.ChangeDocumentStatusSaveDTO;
import com.xbongbong.pro.detailtab.dto.ClueConvertSaveDTO;
import com.xbongbong.pro.detailtab.dto.ClueConvertSaveVO;
import com.xbongbong.pro.detailtab.dto.CustomerExpressSaveDTO;
import com.xbongbong.pro.detailtab.dto.CustomerExpressSetDTO;
import com.xbongbong.pro.detailtab.dto.CustomerInvoiceAddGetDTO;
import com.xbongbong.pro.detailtab.dto.CustomerInvoiceSaveDTO;
import com.xbongbong.pro.detailtab.dto.CustomerInvoiceSetDTO;
import com.xbongbong.pro.detailtab.dto.DelFromMyTeamDTO;
import com.xbongbong.pro.detailtab.dto.DelParentOrChildCustomerDTO;
import com.xbongbong.pro.detailtab.dto.DetailClueConvertDTO;
import com.xbongbong.pro.detailtab.dto.DetailCommunicateDTO;
import com.xbongbong.pro.detailtab.dto.DetailCopyDTO;
import com.xbongbong.pro.detailtab.dto.DetailTabDataGetDTO;
import com.xbongbong.pro.detailtab.dto.DetailTabSettingGetDTO;
import com.xbongbong.pro.detailtab.dto.DetailTabSettingSaveDTO;
import com.xbongbong.pro.detailtab.dto.DetailUpdateGetDTO;
import com.xbongbong.pro.detailtab.dto.DistributionPerformanceSaveDTO;
import com.xbongbong.pro.detailtab.dto.FinishPlanDTO;
import com.xbongbong.pro.detailtab.dto.LinkAddBeforeDTO;
import com.xbongbong.pro.detailtab.dto.LinkAddGetDTO;
import com.xbongbong.pro.detailtab.dto.ManagementSummaryDTO;
import com.xbongbong.pro.detailtab.dto.MyTeamGetDTO;
import com.xbongbong.pro.detailtab.dto.OrderOnPinDTO;
import com.xbongbong.pro.detailtab.dto.PanoramaInitDTO;
import com.xbongbong.pro.detailtab.dto.PrintDataVisibleDTO;
import com.xbongbong.pro.detailtab.dto.SetChildCustomerDTO;
import com.xbongbong.pro.detailtab.dto.SetDefaultBomVersionDTO;
import com.xbongbong.pro.detailtab.dto.SetMainContactDTO;
import com.xbongbong.pro.detailtab.dto.SetParentCustomerDTO;
import com.xbongbong.pro.detailtab.dto.SupplierProductAddDTO;
import com.xbongbong.pro.detailtab.dto.SupplierProductDelDTO;
import com.xbongbong.pro.detailtab.dto.UpdateMyTeamDTO;
import com.xbongbong.pro.detailtab.vo.ChangeDocumentStatusSaveVO;
import com.xbongbong.pro.detailtab.vo.CustomerInvoiceAddGetVO;
import com.xbongbong.pro.detailtab.vo.DetailCommunicateVO;
import com.xbongbong.pro.detailtab.vo.DetailTabGetVO;
import com.xbongbong.pro.detailtab.vo.DetailTabLinkAddBeforeVO;
import com.xbongbong.pro.detailtab.vo.DetailTabSettingGetVO;
import com.xbongbong.pro.detailtab.vo.DistributionPerformanceGetVO;
import com.xbongbong.pro.detailtab.vo.HistoryStageVO;
import com.xbongbong.pro.detailtab.vo.InvoiceExpressGetVO;
import com.xbongbong.pro.detailtab.vo.ManagementSummaryVO;
import com.xbongbong.pro.detailtab.vo.MyTeamGetVO;
import com.xbongbong.pro.detailtab.vo.PanoramaInitVO;
import com.xbongbong.pro.detailtab.vo.ProductDetailVO;
import com.xbongbong.pro.detailtab.vo.ProductUserVO;
import com.xbongbong.pro.detailtab.vo.QuotationTrendVO;
import com.xbongbong.pro.detailtab.vo.SupplierProductVO;
import com.xbongbong.pro.formexplain.pojo.dto.HandlerExplainDTO;
import com.xbongbong.pro.fromdatadictionary.pojo.vo.DictionaryArrayVO;
import com.xbongbong.pro.listbatch.pojo.dto.ListBatchDTO;
import com.xbongbong.pro.marketManage.pojo.dto.RelationSaleClueListDTO;
import com.xbongbong.pro.marketManage.pojo.vo.RelationSaleClueListVO;
import com.xbongbong.pro.oriStock.pojo.OriStockListGetVO;
import com.xbongbong.pro.outstock.pojo.dto.OutstockShippingDTO;
import com.xbongbong.pro.outstock.pojo.vo.OutstockShippingVO;
import com.xbongbong.pro.product.pojo.vo.ProductSearchVO;
import com.xbongbong.pro.quatation.pojo.dto.QuotationProductSearchDTO;
import com.xbongbong.pro.quatation.pojo.dto.QuotationTrendDTO;
import com.xbongbong.pro.weblist.pojo.dto.SaasBaseDTO;
import com.xbongbong.pro.weblist.pojo.vo.WaitPurchaseProductVO;
import com.xbongbong.pro.workorder.pojo.dto.WorkOrderRelationTabGetDTO;

import java.util.List;

/**
 * saas详情页tab栏接口
 *
 * @author feng.zheng
 * @version v1.0
 * @date 2019/1/18
 * @since v1.0
 */
public interface SaasDetailTabService {

    /**
     * 获取客户联系人
     *
     * @param detailTabDataGetDTO 表单数据入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/2/25 10:19
     */
    DetailTabGetVO getCustomerContact(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取供应商联系人
     *
     * @param detailTabDataGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/2/25 16:09
     */
    DetailTabGetVO getSupplierContact(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取供应商关联采购合同
     *
     * @param detailTabDataGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author lcx
     * @date 2019/2/25 16:09
     */
    DetailTabGetVO supplierPurchaseList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取采购合同关联入库单
     *
     * @param detailTabDataGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author lcx
     * @date 2019/2/25 16:09
     */
    DetailTabGetVO relationalInstockList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取采购合同关联出库单
     *
     * @param detailTabDataGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author lcx
     * @date 2019/2/25 16:09
     */
    DetailTabGetVO relationalOutstockList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取上级客户
     *
     * @param detailTabDataGetDTO 参数
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author feng.zheng
     * @date 2019/2/25 16:40
     */
    DetailTabGetVO getParentAndChildCustomer(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 设置主联系人
     *
     * @param setMainContactDTO 联系人
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO setMainContact(SetMainContactDTO setMainContactDTO) throws XbbException;

    /**
     * 获取客户销售机会
     *
     * @param detailTabDataGetDTO 入参
     * @return 销售机会
     * @throws XbbException 异常
     */
    DetailTabGetVO getCustomerOpportunity(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取客户合同订单
     *
     * @param detailTabDataGetDTO 入参
     * @return 合同订单
     * @throws XbbException 异常
     */
    DetailTabGetVO getCustomerContract(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * Description: 获取工单记录(dingTalk)
     * @param workOrderRelationTabGetDTO
     * @return ListAppVO
     * @throws XbbException
     * @author 刘阳
     * @date 2019/5/14 10:45 AM
     * @since v1.0
     */
    ListAppVO getWorkOrderContract(WorkOrderRelationTabGetDTO workOrderRelationTabGetDTO) throws XbbException;

    /**
     * Description: 获取工单记录(web)
     * @param workOrderRelationTabGetDTO
     * @return DetailTabGetVO
     * @throws XbbException
     * @author 刘阳
     * @date 2019/5/17 2:38 PM
     * @since v1.0
     */
    DetailTabGetVO getWorkOrderContractWeb(WorkOrderRelationTabGetDTO workOrderRelationTabGetDTO) throws XbbException;

    /**
     * Description: 报价单
     * @param detailTabDataGetDTO
     * @return DetailTabGetVO
     * @throws XbbException
     * @author 刘阳
     * @date 2019/8/28 2:44 PM
     * @since v1.0
     */
    DetailTabGetVO getQuotationTabData(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 客户详情页报价单趋势中的产品搜索
     *
     * @param quotationProductSearchDTO 入参
     * @return productSearchVO
     * @throws XbbException 异常
     * @author 徐俊杰
     * @date 2019/8/29 11:25
     * @since v1.0
     */
    ProductSearchVO customerQuotationProduct(QuotationProductSearchDTO quotationProductSearchDTO) throws XbbException;

    /**
     * 客户详情页的报价单趋势
     *
     * @param quotationTrendDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.QuotationTrendVO
     * @throws XbbException 异常
     * @author 徐俊杰
     * @date 2019/9/2 9:27
     * @since v1.0
     */
    QuotationTrendVO quotationTrend(QuotationTrendDTO quotationTrendDTO) throws XbbException;

    /**
     * 获取回款
     *
     * @param withSearchTabDataGetDTO 入参
     * @return 回款
     * @throws XbbException 异常
     */
    DetailTabGetVO getPayment(DetailTabDataGetDTO withSearchTabDataGetDTO) throws XbbException;

    /**
     * 获取关联的采购订单
     *
     * @param withSearchTabDataGetDTO 入参
     * @return 采购合同订单信息
     * @throws XbbException 异常
     */
    DetailTabGetVO getContractPurchase(DetailTabDataGetDTO withSearchTabDataGetDTO) throws XbbException;

    /**
     * 获取协同团队
     *
     * @param myTeamGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.MyTeamGetVO
     * @throws XbbException 异常
     * @author feng.zheng
     * @date 2019/3/7 15:30
     */
    MyTeamGetVO getMyTeam(MyTeamGetDTO myTeamGetDTO) throws XbbException;

    /**
     * 添加成员到协同团队
     *
     * @param updateMyTeamDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO updateMyTeam(UpdateMyTeamDTO updateMyTeamDTO) throws XbbException;

    /**
     * 从协同团队删除成员
     *
     * @param delFromMyTeamDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO delFromMyTeam(DelFromMyTeamDTO delFromMyTeamDTO) throws XbbException;

    /**
     * 获取销项开票历史
     *
     * @param detailTabDataGetDTO 入参
     * @return 开票历史
     * @throws XbbException 异常
     */
    DetailTabGetVO getInvoiceHistory(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取进项开票历史
     *
     * @param detailTabDataGetDTO 入参
     * @return 开票历史
     * @throws XbbException 异常
     */
    DetailTabGetVO getPurchaseInvoiceHistory(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取回款单
     *
     * @param detailTabDataGetDTO 入参
     * @return 回款单
     * @throws XbbException 异常
     */
    DetailTabGetVO getPaymentSheet(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 回款单详情-红冲记录
     * 注：该方法的返回参数，参考红冲发票的封装方式
     *
     * @param detailTabDataGetDTO
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException
     * @author zcp
     * @date 19/11/29 029 22:05
     * @update 19/11/29 029 22:05
     * @version v1.0
     * @since v1.0
     */
    DetailTabGetVO getRedPaymentSheet(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 应收款详情-红冲记录
     *
     * @param detailTabDataGetDTO
     * @return
     * @throws XbbException
     */
    DetailTabGetVO getRedReceivables(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 付款单详情-红冲记录
     * 注：该方法的返回参数，参考红冲发票的封装方式
     *
     * @param detailTabDataGetDTO
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException
     * @author zcp
     * @version v1.0
     * @since v1.0
     */
    DetailTabGetVO getRedPaySheet(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取付款计划
     *
     * @param detailTabDataGetDTO 入参
     * @return 付款计划
     * @throws XbbException 异常
     */
    DetailTabGetVO getPayPlan(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 红冲其他收入单列表
     *
     * @param detailTabDataGetDTO
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException
     * @author zcp
     * @version v1.0
     * @since v1.0
     */
    DetailTabGetVO getRedOtherIncome(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 红冲其他支出单列表
     *
     * @param detailTabDataGetDTO
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException
     * @author zcp
     * @version v1.0
     * @since v1.0
     */
    DetailTabGetVO getRedOtherExpense(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 设置上级客户
     *
     * @param setParentCustomerDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO setParentCustomer(SetParentCustomerDTO setParentCustomerDTO) throws XbbException;

    /**
     * 设置下级客户
     *
     * @param setChildCustomerDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO setChildCustomer(SetChildCustomerDTO setChildCustomerDTO) throws XbbException;

    /**
     * 获取发票信息和寄送信息
     *
     * @param detailTabDataGetDTO 入参
     * @return 发票信息寄送信息
     * @throws XbbException 异常
     */
    InvoiceExpressGetVO getCustomerInvoiceExpress(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品负责人/部门
     *
     * @param detailTabDataGetDTO 入参
     * @throws XbbException 异常
     */
    ProductUserVO getProductUserRelation(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品产品详情
     *
     * @param detailTabDataGetDTO 入参
     * @throws XbbException 异常
     */
    ProductDetailVO productDetail(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品入库记录
     *
     * @param detailTabDataGetDTO 入参
     * @return 入库记录
     * @throws XbbException 异常
     */
    DetailTabGetVO getProductInstock(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品出库记录
     *
     * @param detailTabDataGetDTO 入参
     * @return 出库记录
     * @throws XbbException 异常
     */
    DetailTabGetVO getProductOutstock(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品介绍
     *
     * @param detailTabDataGetDTO 入参
     * @return 产品介绍
     * @throws XbbException 异常
     */
    ProductDetailVO getProductInstruction(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取父产品下的子产品列表
     *
     * @param detailTabDataGetDTO 入参
     * @return 子产品列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getChildProductListAndSpec(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取父产品下的子产品批次信息
     *
     * @param detailTabDataGetDTO 入参
     * @return 批次列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getChildProductBatchList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品采购合同列表
     *
     * @param detailTabDataGetDTO 入参
     * @return 产品采购合同列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getPurchaseList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品供应商列表
     *
     * @param detailTabDataGetDTO 入参
     * @return 产品采购合同列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getSupplierList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取产品保质信息
     *
     * @param detailTabDataGetDTO 入参
     * @return 产品保质信息列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getGuaranteeInfo(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 产品详情页子产品库存信息
     *
     * @param detailTabDataGetDTO 入参
     * @return 产品保质信息列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getChildProductStock(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 产品详情页获取产品关联的合同
     *
     * @param detailTabDataGetDTO 入参
     * @return 产品保质信息列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getRelativeContract(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取bom的产品结构
     *
     * @param detailTabDataGetDTO 入参
     * @return 产品保质信息列表
     * @throws XbbException 异常
     */
    DetailTabGetVO getBomProductStructure(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 删除上下级客户
     *
     * @param delParentOrChildCustomerDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO delParentOrChildCustomer(DelParentOrChildCustomerDTO delParentOrChildCustomerDTO) throws XbbException;

    /**
     * 获取发票信息或寄送信息解释
     *
     * @param customerInvoiceAddGetDTO
     * @return
     * @throws XbbException
     */
    CustomerInvoiceAddGetVO getCustomerInvoiceExplain(CustomerInvoiceAddGetDTO customerInvoiceAddGetDTO) throws XbbException;

    /**
     * 保存发票信息
     *
     * @param customerInvoiceSaveDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO saveCustomerInvoice(CustomerInvoiceSaveDTO customerInvoiceSaveDTO) throws XbbException;

    /**
     * 保存寄送地址
     *
     * @param customerExpressSaveDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO saveCustomerExpress(CustomerExpressSaveDTO customerExpressSaveDTO) throws XbbException;

    /**
     * 设置寄送地址，删除或者设为默认地址
     *
     * @param customerExpressSetDTO 入参
     * @return 是否成功
     * @throws XbbException
     */
    BaseVO setCustomerExpress(CustomerExpressSetDTO customerExpressSetDTO) throws XbbException;

    /**
     * 设置开票信息，删除或者设为默认开票信息
     *
     * @param customerInvoiceSetDTO 入参
     * @return 是否成功
    C* @throws XbbException
     */
    BaseVO setCustomerInvoice(CustomerInvoiceSetDTO customerInvoiceSetDTO) throws XbbException;

    /**
     * 获取客户阶段列表
     *
     * @param detailTabDataGetDTO
     * @return
     */
    StageLogListVO getCustomerStageArray(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取客户阶段历史阶段
     *
     * @param detailTabDataGetDTO
     * @return
     */
    HistoryStageVO getHistoryStage(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 付款单
     *
     * @param detailTabDataGetDTO 入参
     * @return 回参
     * @throws XbbException 异常
     */
    DetailTabGetVO getPaySheet(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 关联业务新建返回解释
     *
     * @param linkAddGetDTO 入参
     * @return 解释
     * @throws XbbException 异常
     */
    FormDataAddGetVO linkAddGet(LinkAddGetDTO linkAddGetDTO) throws XbbException;

    FormDataAddGetVO clueConvertGet(DetailClueConvertDTO clueConvertDTO) throws XbbException;

    ClueConvertSaveVO clueConvertSave(ClueConvertSaveDTO clueConvertDTO) throws XbbException;

    /**
     * saas详情页编辑
     *
     * @param detailUpdateGetDTO 入参
     * @return 回参
     * @throws XbbException 异常
     */
    FormDataUpdateGetVO detailUpdateGet(DetailUpdateGetDTO detailUpdateGetDTO) throws XbbException;

    /**
     * 获取输单、流失原因
     *
     * @param saasBaseDTO
     * @return
     * @throws XbbException
     */
    DictionaryArrayVO getWastageCase(SaasBaseDTO saasBaseDTO) throws XbbException;

    /**
     * 根据条件查询
     *
     * @param corpid       公司
     * @param businessType 类型
     * @param conditions   条件
     * @return 数据
     * @throws XbbException 异常
     */
    PaasFormDataEsListVO getEsListOnlyByCondition(String corpid, Integer businessType, List<ConditionsEntityExt> conditions) throws XbbException;

    /**
     * 获取业绩分配
     *
     * @param detailTabDataGetDTO 入参
     * @return 业绩分配
     * @throws XbbException 异常
     */
    DistributionPerformanceGetVO getDistributionPerformance(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 保存业绩分配
     *
     * @param distributionPerformanceSaveDTO 入参
     * @return 成功与否
     * @throws XbbException 异常
     */
    BaseVO saveDistributionPerformance(DistributionPerformanceSaveDTO distributionPerformanceSaveDTO) throws XbbException;

    /**
     * 详情页复制操作
     *
     * @param detailCopyDTO 复制需要的参数
     * @return 数据
     * @throws XbbException 异常
     */
    FormDataUpdateGetVO copy(DetailCopyDTO detailCopyDTO) throws XbbException;

    /**
     * 详情页跟进记录保存
     *
     * @param formDataAddDTO
     * @return
     */
    FormDataAddVO saveCustomerCommunicate(FormDataAddDTO formDataAddDTO) throws XbbException;

    /**
     * 详情页跟进记录列表
     *
     * @param detailCommunicateDTO
     * @return
     */
    DetailCommunicateVO customerCommunicateList(DetailCommunicateDTO detailCommunicateDTO) throws XbbException;

    /**
     * 详情页跟进记录新建
     *
     * @param detailCommunicateDTO
     * @return
     */
    FormDataAddGetVO detailCommunicateGet(DetailCommunicateDTO detailCommunicateDTO) throws XbbException;

    /**
     * 详情页跟进记录其他信息
     *
     * @param formDataGetDTO
     * @return
     */
    BaseVO detailCommunicateGetOther(FormDataGetDTO formDataGetDTO) throws XbbException;

    /**
     * 设为默认版本
     *
     * @param setDefaultBomVersionDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO setDefaultBomVersion(SetDefaultBomVersionDTO setDefaultBomVersionDTO) throws XbbException;

    /**
     * 合同退货退款tab
     *
     * @param detailTabDataGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author youli.chen
     * @date 2019/2/25 16:09
     */
    DetailTabGetVO getRefund(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 退货退款关联作废发票tab
     *
     * @param detailTabDataGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException 业务异常
     * @author youli.chen
     * @date 2019/2/25 16:09
     */
    DetailTabGetVO getRefundInvoice(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 修改状态
     *
     * @param changeStatusDTO
     * @throws
     * @author long.rao
     * @date 2019-04-17 15:43
     */
    BaseVO changeStatus(ChangeStatusDTO changeStatusDTO) throws XbbException;

    /**
     * 客户阶段、销售阶段生成合同
     *
     * @param listBatchDTO
     * @return
     */
    FormDataAddGetVO createContract(ListBatchDTO listBatchDTO) throws XbbException;

    /**
     * 获取采购退货记录
     *
     * @param detailTabDataGetDTO 入参
     * @return 采购记录
     * @throws XbbException 异常
     */
    DetailTabGetVO getPurchaseReturnedList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取红冲发票
     *
     * @param detailTabDataGetDTO 入参
     * @return 红冲发票
     * @throws XbbException 异常
     */
    DetailTabGetVO getRedInvoice(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取待采购缺货对应的数据列表详情
     *
     * @param formDataGetDTO
     * @return
     */
    ListPurchasedVO getPurchasedDetail(FormDataGetDTO formDataGetDTO) throws XbbException;

    /**
     * @Author: wujian
     * @Description: 获取以销定购产品视图详情
     * @Date: 上午11:06 2022/2/18
     * @Param: [formDataGetDTO]
     * @return: com.xbongbong.pro.applist.pojo.vo.ListPurchasedVO
     **/
    WaitPurchaseProductVO getPurchasedProductDetail(OrderOnPinDTO orderOnPinDTO) throws XbbException;

    /**
     * 获取待生产缺货对应的数据列表详情
     *
     * @param formDataGetDTO
     * @return
     */
    ListPurchasedVO getProduceDetail(FormDataGetDTO formDataGetDTO) throws XbbException;

    /**
     * 全景图初始化
     *
     * @param panoramaInitDto 全景图初始化dto
     * @return com.xbongbong.pro.detailtab.vo.PanoramaInitVO
     * @throws XbbException
     * @author zcp
     * @date 2019/5/30 20:51
     * @version v1.0
     * @since v1.0
     */
    PanoramaInitVO panoramaInit(PanoramaInitDTO panoramaInitDto) throws XbbException;

    /**
     * 客户动态列表
     *
     * @param customerDynamicListDTO 入参
     * @return JSONArray
     * @throws XbbException xbbException
     */
    CommunicateDynamicsListVO getCustomerDynamicsList(CustomerDynamicListDTO customerDynamicListDTO) throws XbbException;

    /**
     * 动态列表
     *
     * @param dynamicListDTO 入参
     * @return JSONArray
     * @throws XbbException xbbException
     */
    CommunicateDynamicsListVO getDynamicsList(DynamicListDTO dynamicListDTO) throws XbbException;

    /**
     * 获取tab顺序设置
     *
     * @param detailTabSettingGetDTO
     * @return
     * @throws XbbException
     */
    DetailTabSettingGetVO getDetailTabSet(DetailTabSettingGetDTO detailTabSettingGetDTO) throws XbbException;

    /**
     * 保存详情页设置
     *
     * @param detailTabSettingSaveDTO 入参
     * @return 是否成功
     * @throws XbbException 异常
     */
    BaseVO saveDetailTabSet(DetailTabSettingSaveDTO detailTabSettingSaveDTO) throws XbbException;

    /**
     * @Description: 期初库存tab页
     * @Param: [cabinetFileListGetDTO]
     * @return: com.xbongbong.pro.oriStock.pojo.OriStockListGetVO
     * @Author: cyy
     * @Date: 2019/10/17
     */
    OriStockListGetVO getOriStock(CabinetFileListGetDTO cabinetFileListGetDTO) throws XbbException;

    BaseVO finishCommunicatePlan(FinishPlanDTO finishPlanDTO) throws XbbException;

    /**
     * 获取创建人和协同人、负责人(判断高级规则用)
     *
     * @param printDataVisibleDTO
     * @author xingxing.xiao
     */
    HandlerExplainDTO getOwnerIdAndCoUserIdToPrint(PrintDataVisibleDTO printDataVisibleDTO) throws XbbException;

    /**
     * 点击开启关闭后更新单据状态
     *
     * @param changeDocumentStatusSaveDTO
     * @return
     */
    ChangeDocumentStatusSaveVO changeDocumentStatus(ChangeDocumentStatusSaveDTO changeDocumentStatusSaveDTO) throws XbbException;

    /**
     * 回款管理/付款管理的统计
     *
     * @param managementSummaryDTO
     * @return
     * @throws XbbException
     */
    ManagementSummaryVO getPaymentSummary(ManagementSummaryDTO managementSummaryDTO) throws XbbException;

    /**
     * 回款管理中获取回款单
     *
     * @param detailTabDataGetDTO 入参
     * @return 回款单
     * @throws XbbException 异常
     */
    DetailTabGetVO getPaymentSheetOnManagement(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 修改合同和客户的tab
     *
     * @param detailTabScriptDTO
     * @return
     * @throws XbbException
     */
    DetailTabScriptVO scriptTab(DetailTabScriptDTO detailTabScriptDTO) throws XbbException;

    /**
     * 获取退货退款中的关联红冲回款单列表
     *
     * @param detailTabDataGetDTO 入参
     * @return 回款单
     * @throws XbbException 异常
     * @author zhouwq
     * @date 2019/12/2 13:42
     */
    DetailTabGetVO getRefundRedPaymentSheet(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取退货退款中的关联红冲应收款列表
     *
     * @param detailTabDataGetDTO 入参
     * @return com.xbongbong.pro.detailtab.vo.DetailTabGetVO
     * @throws XbbException
     * @author zcp
     * @version v1.0
     * @since v1.0
     */
    DetailTabGetVO getRefundRedPayment(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取采购退货单中关联红冲付款单列表
     *
     * @param detailTabDataGetDTO 入参
     * @return 付款单
     * @throws XbbException error
     * @author zhouwq
     * @date 2020/2/24 9:47
     */
    DetailTabGetVO getReturnedRedPaySheet(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取采购退货单中关联发票列表
     *
     * @param detailTabDataGetDTO 入参
     * @return 发票列表
     * @throws XbbException error
     * @author zhouwq
     * @date 2020/2/24 9:47
     */
    DetailTabGetVO getReturnedPurchaseInvoice(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 供货产品删除，只允许单个删除
     *
     * @param supplierProductDelDTO 删除产品参数
     * @return 执行结果
     * @throws XbbException 异常
     */
    DetailTabGetVO delSupplierProduct(SupplierProductDelDTO supplierProductDelDTO) throws XbbException;

    /**
     * 供应商详情页供货产品新增
     *
     * @param supplierProductAddDTO 新增产品数据
     * @return 结果
     * @throws XbbException 异常
     */
    FormDataUpdateVO addSupplierProduct(SupplierProductAddDTO supplierProductAddDTO) throws XbbException;

    /**
     * 获取供货产品字段
     *
     * @param detailTabDataGetDTO 入参
     * @return 回参
     */
    SupplierProductVO getLinkProductField(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取客户、销售机会、合同订单的关联费用列表
     *
     * @param detailTabDataGetDTO
     * @return
     * @throws XbbException
     */
    DetailTabGetVO detailExpenseList(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 市场活动关联销售线索
     * @param detailTabDataGetDTO
     * @return
     * @throws XbbException
     */
//    DetailTabGetVO getMarketActivityClue(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取市场活动详情页（"销售线索"tab）搜素条件
     *
     * @param conditionListDTO
     * @return
     * @throws XbbException
     */
    ScreenListVO listTabCondition(DetailTabConditionListDTO conditionListDTO) throws XbbException;

    RelationSaleClueListVO getWebRelationSaleClueList(RelationSaleClueListDTO relationSaleClueListDTO) throws XbbException;

    /**
     * 获取tab栏的回款计划信息
     *
     * @param detailTabDataGetDTO
     * @return
     */
    DetailTabGetVO getPaymentTask(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取固定额度修改记录
     *
     * @param detailTabDataGetDTO 入参
     * @return 固定额度修改记录
     * @throws XbbException 异常
     */
    DetailTabGetVO getCreditFixedLimit(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取临时额度申请记录
     *
     * @param detailTabDataGetDTO 入参
     * @return 临时额度申请记录
     * @throws XbbException 异常
     */
    DetailTabGetVO getCreditTemporaryLimit(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 获取信用流水
     *
     * @param detailTabDataGetDTO 入参
     * @return 信用流水
     * @throws XbbException 异常
     */
    DetailTabGetVO getCreditCardBill(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 关联新建之前需要做的一些事情
     *
     * @param linkAddBeforeDTO
     * @return
     */
    DetailTabLinkAddBeforeVO linkAddBefore(LinkAddBeforeDTO linkAddBeforeDTO) throws XbbException;

    /**
     * 营销活动适用对象
     *
     * @param detailTabDataGetDTO
     * @return
     * @throws XbbException
     */
    DetailTabGetVO marketingApplicableObjects(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 营销活动不适用商品
     *
     * @param detailTabDataGetDTO
     * @return
     * @throws XbbException
     */
    DetailTabGetVO marketingInapplicableGoods(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 经销商档案账号管理tab
     *
     * @param detailTabDataGetDTO
     * @return
     * @throws XbbException
     */
    DetailTabGetVO getDistributorAccount(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 普通发货详情
     */
    OutstockShippingVO normalShipping(OutstockShippingDTO outstockShippingDTO) throws XbbException;

    /**
     * 电子面单发货详情
     */
    OutstockShippingVO electronicShipping(OutstockShippingDTO outstockShippingDTO) throws XbbException;

    /**
     * 普通发货保存
     */
    BaseVO saveNormalShipping(OutstockShippingDTO outstockShippingDTO) throws XbbException;

    /**
     * 电子面单发货保存
     */
    BaseVO saveElectronicShipping(OutstockShippingDTO outstockShippingDTO) throws XbbException;

    OutstockShippingVO getExpressInfo(OutstockShippingDTO outstockShippingDTO) throws XbbException;

    DetailTabGetVO getWriteOffRecord(DetailTabDataGetDTO detailTabDataGetDTO) throws XbbException;

    /**
     * 取消发货
     */
    BaseVO cancelDelivery(OutstockShippingDTO outstockShippingDTO) throws XbbException;

    BaseVO copyElectronicShipping(OutstockShippingDTO outstockShippingDTO) throws XbbException;
    /**
     * description:  阶段进入校验
     * date: 2021/12/6 3:52 下午
     * @Author yingjf
     */
    String validateStage(ChangeStageDTO changeStageDTO) throws XbbException;

    /**
     *
     * @Description: 详情页获取审批记录
     * @param
     * @return: com.xbongbong.paas.pojo.vo.ApprovalRecordsVO
     * @Author: shen.yang
     * @Date: 2022/6/14  17:21
    */
    ApprovalRecordsVO getApprovalRecords(ApprovalRecordsDTO approvalRecordsDTO) throws XbbException;
}


